<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 
    类封装 
    class（类）是构造函数的【语法糖】：class的本质就是构造函数，只是写法上更简洁
    -->
    <script>
        /*         
        封装一个作者类Author
        ·属性：姓名，作品集（字符串数组）
        ·方法：创作（抽象方法：一行代码都没有，等子类自己去实现）（产出文艺作品） 
        */
        class Author {
            // function Author(name, artworks = []) {
            //     this.name = name
            //     this.artworks = artworks
            // }

            /* 构造器：创建与类同名的实例 */
            constructor(name, artworks = []) {
                this.name = name
                this.artworks = artworks
            }

            // Author.prototype.chuangzuo = function () {
            //     console.log(`${this.name}正在创作，具体请子类自行实现...`);
            // }

            /* 实例方法：所有实例共享同一个函数的内存 */
            chuangzuo() {
                console.log(`${this.name}正在创作，具体请子类自行实现...`);
            }

            xinshang(artworkName) {
                console.log(`${this.name}正在欣赏文艺作品《${artworkName}》`);
            }
        }

        const dfq = new Author("达芬奇")
        console.log(dfq);
        dfq.chuangzuo()
        dfq.xinshang("向日葵")

    </script>

</body>

</html>